package com.pai4j.domain.vo.llm;


import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
/**
 * ChatCompletionChoice 类代表聊天完成的一个选择项
 * 它包含了选择项的索引，对应的消息内容以及完成选择的原因
 *
 * @author: CYM-pai
 * @date: 2025/06/01 20:36
 **/
public class ChatCompletionChoice {

    // 选择项的索引
    private int index;

    // 选择项对应的消息内容
    private ChatCompletionMessage message;

    // 完成选择的原因，使用SerializedName注解以便在序列化和反序列化时映射到JSON字段
    @SerializedName("finish_reason")
    private String finishReason;

    /**
     * 获取选择项的索引
     *
     * @return 选择项的索引
     */
    public int getIndex() {
        return index;
    }

    /**
     * 获取选择项对应的消息内容
     *
     * @return 选择项的消息内容
     */
    public ChatCompletionMessage getMessage() {
        return message;
    }

    /**
     * 获取完成选择的原因
     *
     * @return 完成选择的原因
     */
    public String getFinishReason() {
        return finishReason;
    }

    /**
     * 设置选择项的索引
     *
     * @param index 选择项的索引
     */
    public void setIndex(int index) {
        this.index = index;
    }

    /**
     * 设置选择项对应的消息内容
     *
     * @param message 选择项的消息内容
     */
    public void setMessage(ChatCompletionMessage message) {
        this.message = message;
    }

    /**
     * 设置完成选择的原因
     *
     * @param finishReason 完成选择的原因
     */
    public void setFinishReason(String finishReason) {
        this.finishReason = finishReason;
    }
}

